home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
Newsflash issue 2 disk 1.adf
/
SOURCES
/
MovieScroll.s.pp
/
MovieScroll.s
Wrap
Text File
|
1990-01-20
|
6KB
|
215 lines
****************************************************************************
* System MOVIE SCROLL Routine (Devpac 2 Source)
*
* By Maurice `Digital Dictator` Wielink
* Hondemanstraat 51, 1508 GA, Zaandam, The Netherlands
* My original Source was Lost so I have Disassembled my Executable Routine.
* Here it is...............
****************************************************************************
*------ PARAMETERS ------*
Speed equ 17 ; Scroll Speed
NrLines equ 12 ; Nr of lines in Text
*------------------------*
*************************
movem.l d0-d7/a0-a6,-(a7)
BRA LC358AE
*-----------------------------------------------*
LC3597E MOVEQ.L #NrLines-1,D6 ;Nr of Text Lines -1
LEA LC35B1A(pc),A4 ;Address of Text Data
LC35994 MOVEQ.L #10,D0 ;X Coordinate of Text
MOVE.L #266,D1 ;Y Coordinate of Text
MOVEA.L LC35AE2,A1 ;RastPort
JSR -$F0(A6) ;Move
MOVEA.L LC35AE2,A1
MOVEA.L A4,A0 ;Get Text Data
MOVE.L #38,D0 ;Nr of Chars in Line
JSR -$3C(A6) ;Text
MOVEQ.L #18,D7 ;Offset for Scroll Loop (19)
MOVEQ.L #0,D2 ;x0 of area to scroll
MOVEQ.L #0,D3 ;y0 of area to scroll
MOVE.L #320,D4 ;x1 of area to scroll
MOVE.L #276,D5 ;y2 of area to scroll
LC359DA MOVEA.L LC35AE2,A1 ;RastPort
LC359E0 BTST #$A,$DFF016 ;Right Button = Stop Scroll
BEQ.s LC359E0
BTST #6,$BFE001 ;Left Button = EXIT
BEQ LC35854
MOVEQ.L #0,D0 ;No Vertical Scroll
MOVEQ.L #1,D1 ;Scroll Up (1 Pixel at the time)
LC35A04 CMPI.B #$FE,$DFF006
BNE.S LC35A04
JSR -$18C(A6) ;Scroll Raster
move.l d7,-(a7)
moveq.l #Speed,d7 ;Delay Value
JSR LC35A22(pc) ;Delay a Bit
move.l (a7)+,d7
DBF D7,LC359DA ;Scroll It
ADDA.L #38,A4 ;Next Line in text
DBF D6,LC35994 ;Until all Lines are Done....
move.l #800,d7 ;Delay Value
jsr LC35A22(pc) ;Wait a While.....
BRA LC35854 ;......then EXIT
*-----------------------------------------------*
LC358AE lea LC35AEE(pc),A1 ;Intuition.lib Name
MOVEQ #0,D0
MOVEA.L 4.W,A6 ;execBase at A6
JSR -$228(A6) ;Open IntLib
MOVE.L D0,LC35B16
BEQ LC358A6
lea LC35B00(pc),A1
MOVEQ #0,D0
JSR -$228(A6) ;Open GfxLib
MOVE.L D0,LC35B12
BEQ LC35898
lea LC35A76(pc),A0 ;Screen Structure
MOVEA.L LC35B16,A6 ;IntBase
JSR -$C6(A6) ;OpenScreen (320*276)
MOVE.L D0,LC35A96 ;ScreenBase
BEQ LC3588A
MOVEA.L d0,A0 ;ScreenBase at a0
LEA $2C(A0),A0 ;Get ViewPort
MOVE.L A0,LC35AE6 ;Screen Viewport
LEA LC35AEA(pc),A1 ;CMap
MOVEQ #2,D0 ;Nr of Colors
MOVEA.L LC35B12,A6 ;GfxBase
JSR -$C0(A6) ;Load RGB4
LEA LC35AAE(pc),A0 ;Window Structure
MOVE.L LC35A96,D0 ;ScreenBase
MOVE.L D0,$1E(A0) ;Store ScrPTR in Window
MOVEA.L LC35B16,A6 ;IntBase
JSR -$CC(A6) ;OpenWindow
MOVE.L D0,LC35ADE ;Window Base
BEQ LC3587A
MOVEA.L d0,A0 ;WindowBase at a0
MOVE.L $32(A0),LC35AE2 ;WD_RastPort
MOVEA.L LC35B12,A6 ;GfxBase
MOVEA.L LC35AE2,A1 ;WD_RastPort
MOVEQ.L #1,D0 ;Color in CMap
JSR -$156(A6) ;SetAPen
MOVE.W #$3A,$DFF096 ;Remove Mouse Pointer
MOVEA.L 4,A6 ;ExecBase
JSR -$84(A6) ;Forbid
MOVEA.L LC35B12,A6 ;GfxBase at a6
bra LC3597E ;START !!!
*-----------------------------------------------*
* QUIT
LC35854 MOVEA.L 4,A6
JSR -$8A(A6) ;Permit
JSR LC35A3C(pc) ;FadeOut
MOVE.W #$803A,$DFF096 ;Mouse Pointer Back
MOVEA.L LC35ADE,A0 ;Window Base
MOVEA.L LC35B16,A6 ;IntBase
JSR -$48(A6) ;Close Window
LC3587A MOVEA.L LC35A96,A0 ;ScreenBase
MOVEA.L LC35B16,A6 ;IntBase
JSR -$42(A6) ;CloseScreen
LC3588A MOVEA.L LC35B12,A1 ;GfxBase
MOVEA.L 4.W,A6 ;ExecBase
JSR -$19E(A6) ;Close Library
LC35898 MOVEA.L LC35B16,A1 ;IntBase
MOVEA.L 4.W,A6 ;ExecBase
JSR -$19E(A6) ;Close Library
LC358A6 movem.l (a7)+,d0-d7/a0-a6
RTS ;and Exit !
*------- FADE OUT --------*
LC35A3C MOVE.L #$E,D7 ;15 Values per Color
LC35A42 LEA LC35AEA(pc),A1 ;Get CMap
SUBI.W #$111,2(A1) ;Chance Color02
JSR LC35A58(pc) ;Use Subroutine
DBF D7,LC35A42
RTS
LC35A58 MOVEA.L LC35AE6,A0 ;ViewPort
MOVEQ #2,D0 ;Nr of Colors
MOVEA.L LC35B12,A6 ;GfxBase
JSR -$C0(A6) ;LoadRGB4
MOVE.L D7,-(A7)
moveq.l #60,d7
jsr LC35A22(pc)
MOVE.L (A7)+,D7
RTS
*-----------------------------------------------*
* DELAY ROUTINE
LC35A22 CMPI.B #$FF,$DFF006
BNE.S LC35A22
DBF D7,LC35A22
RTS
*-----------------------------------------------*
* NEWSCREEN STRUCTURE
even
LC35A76: dc.w 0,0,320,276 ;Left, Top, Width, Height
dc.w 1 ;number of bitplanes
dc.b 0,0 ;detail , block pen
dc.w 0,$f+$100 ;Low-Res,CustomScreen+ScreenQuiet
dc.l DefaultFont,0,0,0
DefaultFont: dc.l FontName
dc.w 8 ;Size
dc.b 0,0
FontName: dc.b 'topaz.font',0
even
* NEWWINDOW STRUCTURE
LC35AAE: dc.w 0,0,320,276
dc.b 0,0 ;detail/block pen
dc.l 0,$1000+$0800+$0100
dc.l 0,0,0,0,0
dc.w 320,276,320,276,$f
LC35AEE dc.b 'intuition.library',0
LC35B00 dc.b 'graphics.library',0
even
LC35A96 dc.l 0 ;ScreenBase
LC35AE6 dc.l 0 ;Screen ViewPort
LC35ADE dc.l 0 ;WindowBase
LC35AE2 dc.l 0 ;WD_RastPort
LC35B16 dc.l 0 ;IntBase
LC35B12 dc.l 0 ;GfxBase
LC35AEA dc.w $000,$FFF ;CMAP (Black, White)
* The Text Data
LC35B1A dc.b ' Movie Scroll Routine '
dc.b ' '
dc.b ' Coded by '
dc.b ' Maurice `Digital Dictator` Wielink '
dc.b ' for the Programming Section '
dc.b ' on the Wonderful and Best '
dc.b ' Disk Magazine around '
dc.b ' '
dc.b ' NEWSFLASH '
dc.b ' '
dc.b ' '
dc.b ' '
;The
end